SQL基础 |
您所在的位置:网站首页 › sql基础教程 mick pdf › SQL基础 |
一:SQL通用语法
1:SQL 语句可以单行或多行书写,以分号结尾。 2:可使用空格和缩进来增强语句的可读性。 3:MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。 4: 注释 * 单行注释: – 注释内容 或 # 注释内容(mysql 特有) * 多行注释: /* 注释 */ 二:SQL分类A:创建数据库: create database 【if not exists】 数据库名 【default charset 字符集】【collate 排序规则】; B:查询数据库: a:查询所有数据库: show databases; b:查询当前数据库: select database(); C:使用数据库 use 数据库名称; D:删除数据库 drop database 【if exists】数据库名称; A:查询 a:查看当前数据库所有表 show tables; b:查询表结构 desc 表名; c:查询指定表的建表语句 show create table 表名; B:创建 create table 表名( 字段1 字段1类型【comment 字段1注释】, 字段2 字段2类型【comment 字段2注释】, 字段3 字段3类型【comment 字段3注释】, ------ 字段n 字段n类型【comment 字段n注释】 )【comment 表注释】; mysql中数据类型较多,主要分为三类:数值类型,字符串类型,日期时间类型。 (为了便于自己操作,可以直接使用相关的数据库管理工具,在此我是用的是DBeaver) 1:添加数据A:给指定字段添加数据 insert into 表名(字段1,字段2,…)values (值1,值2,…); B:给全部字段添加数据 insert into 表名 values (值1,值2,…); C:批量添加数据 insert into 表名(字段1,字段2,…)values (值1,值2,…),(值1,值2,…),(值1,值2,…); insert into 表名 values (值1,值2,…),(值1,值2,…); 注意: 1:插入数据时,指定的字段顺序需要与值的顺序是一一对应的。 2:字符串和日期型数据应该包含在引号中。 3:插入的数据大小应该在字段的规定范围内。 2:修改数据update 表名 set 字段名1=值1,字段名2=值2,…[where 条件]; 注意:如果不加条件,则表示更新整张对对应字段的值 3:删除数据delete from 表名 [where 条件] 注意: 1:delete语句不能删除某一个字段的值(可以使用update) 2:delete语句的条件可以有,也可以没有,如果没有,则会删除整张表的所有数据。 A:查询多个字段 select 字段1,字段2,字段3… from 表名; select * from 表名;(查询返回所有字段) B:设置别名 select 字段1 【as 别名1】,字段2 【as 别名2】… from 表名; C:去除重复记录 select distinct 字段列表 from 表名; 注: 执行顺序: where>聚合函数>having 分组之后,查询的字段一般为聚合函数或者分组字段,查询其他字段无意义(随机的)。 where与having的区别 where 是在分组前进行过滤,不满足where条件的不参与分组,having是在分组后对结果进行过滤,where不能对聚合函数进行判断,而having可以。
常见权限如下: 注: 1:多个权限之间使用逗号分隔 2:授权时,数据库名和表名可以使用*进行通配,代表所有。 三:函数 1:字符串函数常见字符串函数: 常见数值函数 常见日期函数:
概念: 约束是作用在表中字段上的规则,用于限制存储在表中的数据,保证数据库中数据的正确、有效性和完整性。分类: 用来让两张表之间的数据建立连接,从而保证数据的一致性和完整性 A:添加外键: create table 表名( 字段名 数据类型, ... [constraint] [外键名称] foreign key (外键字段名)references 主表(主表列名) );或者: alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(主表列名);B:删除外键: alter table 表名 drop foreign key 外键名称;
A:一对多 在多的一方建立外键,指向一的一方的主键 B:多对多 建立第三张中间表,中间表至少包含两个外键,分别关联两方主键 C:一对一 在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(unique)。 2:多表查询A:连接查询 a:内连接:相当于查询A、B交集部分数据 隐式内连接: select 字段列表 from 表1,表2 where 条件 …; 显式内连接(只是表达形式上的差别,和隐式内连接效果差不多,可能有速度上的其别): select 字段列表 from 表1 [inner] join 表2 on 连接条件 …; b:外连接: 左外连接:查询左表所有数据,以及两张表交集部分数据。 select 字段列表 from 表1 left [outer] join 表2 on 条件…; 右外连接:查询右表所有数据,以及两张表交集部分数据 select 字段列表 from 表1 right [outer] join 表2 on 条件…; 自连接:当前表与自生的连接查询,自连接必须使用表别名 例如:查询emp表中员工及其所属领导的名字: emp表:managerid中的数字为该员工所属领导的id B:联合查询-union,union all 对于union查询,就是将多次查询的结果合并起来,形成一个新的查询结果集 select 字段列表 from 表A ... union [all] select 字段列表 from 表B ...; 注:对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。union all会将全部数据直接合并在一起,union会对合并之后的数据去重。emp: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |